iT邦幫忙

2024 iThome 鐵人賽

DAY 15
0
Security

HTB_Headless系列 第 15

[Day 11]HTB_Headless(Reverse Shell_02)

  • 分享至 

  • xImage
  •  

HTB練習紀錄 — Headless

  • Elevate privileges

Day 10成功連到受害主機的shell

本次將再度使用Reverse Shell,嘗試取得該主機root權限


Reverse Shell

確認shell可執行

首先確認程式碼可以運作,可以確認 ls 成功運作
https://ithelp.ithome.com.tw/upload/images/20240819/20168534Wt358qEask.png

嘗試進入根目錄

確認cd /root無法執行,嘗試sudo提權也需要密碼
https://ithelp.ithome.com.tw/upload/images/20240819/20168534tQXPi6VaPg.png

確認當前用戶(dvir)權限

sudo -l 確認當前用戶(dvir)可以使用sudo 執行的命令及權限。
https://ithelp.ithome.com.tw/upload/images/20240819/201685349XqqnXfGX9.png

(ALL) NOPASSWD: /usr/bin/syscheck

是一個 sudoers 文件的配置條目,表示特定用戶可以在所有主機上無需密碼地執行 /usr/bin/syscheck 命令。

研究 /usr/bin/syscheck

確認initdb.sh為必定執行的程序
https://ithelp.ithome.com.tw/upload/images/20240819/20168534cfrETdz210.png

看看ChatGPT的詳細解說

ChatGPT
這個腳本的功能是檢查名為 initdb.sh 的進程是否正在運行。具體步驟是:

  1. 使用 pgrep 查找名為 initdb.sh 的進程。
  2. 如果找不到該進程,輸出提示信息並啟動 initdb.sh。
  3. 如果已經有該進程在運行,輸出相應的信息告知用戶服務已經在運行。
  4. 最後,腳本以退出狀態 0 結束,表示成功執行。

這樣的腳本通常用於系統初始化或服務監控,以確保必要的服務正在運行。

if ! /usr/bin/pgrep -x "initdb.sh" &>/dev/null; then
  /usr/bin/echo "Database service is not running. Starting it..."
  ./initdb.sh 2>/dev/null
else
  /usr/bin/echo "Database service is running."
fi

exit 0

結論

執行syscheck必定會呼叫initdb.sh,可以嘗試進行攻擊


今日提問

  1. syscheck是什麼?
  2. 如何判斷可以嘗試對initdb.sh 進行攻擊的?

參考來源:

  1. HTB_Headless
    Headless Hack The Box (HTB) Write-Up

上一篇
[Day 10]HTB_Headless(Reverse Shell_01)
下一篇
[Day 12]HTB_Headless(Reverse Shell_02)
系列文
HTB_Headless30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言